package com.zbs.framework.dao.function.service;

import com.zbs.framework.dao.function.entity.Function;
import com.zbs.framework.dao.function.service.model.FunctionNode;

import java.util.List;

public interface FunctionService {
    
    /**
     * 新增功能点
     *
     * @param parentId
     * @param identifier
     * @param name
     * @param description
     * @param permIds
     * @return
     */
    Function save(Long parentId, String identifier, String name,
                  String description, List<Long> permIds);

    /**
     * 编辑功能点
     *
     * @param id
     * @param identifier
     * @param name
     * @param description
     * @param permIds
     */
    void edit(Long id, String identifier, String name,
              String description, List<Long> permIds);

    /**
     * 删除功能点
     *
     * @param id
     */
    void delete(Long id);

    /**
     * 获取功能树
     * @param rootId
     *          根节点ID
     * @return
     */
    List<FunctionNode> getTree(Long rootId);
}
